import pickle

class ListeHighScore():
    def __init__(self):
        self.listeScore = self.loadScore()
    
    def finDePartieScore(self, joueur):
        score = joueur.score
        nom = joueur.nom
        #on va placer le joueur dans la liste des scores
        position=-1
        for i in range(10):
            if score > self.listeScore[i].score:
                position = i
                break
        
        
        if position != -1:
            for j in range(10-position):
                self.listeScore[9-j] = self.listeScore[8-j]
            
            self.listeScore[position]=JoueurHighscore(nom, score)#son nom et son score
            
        return self.listeScore
         
         
    def loadScore(self):
        try:
            print "score load"
            u = pickle.Unpickler(open("highscore.agile", 'r'))
            return u.load().listeScore
        except:
            print "Exception"
            self.listeScore = self.tableauInitialisationDepart()
            return self.listeScore


    def tableauInitialisationDepart(self):
        tab = [JoueurHighscore(str(""), 0),
               JoueurHighscore(str(" "), 0),
               JoueurHighscore(str("  "), 0),
               JoueurHighscore(str("   "), 0),
               JoueurHighscore(str("    "), 0),
               JoueurHighscore(str("     "), 0),
               JoueurHighscore(str("      "), 0),
               JoueurHighscore(str("       "), 0),
               JoueurHighscore(str("        "), 0),
               JoueurHighscore(str("         "), 0)]
        return tab
            


class JoueurHighscore():
    def __init__(self, nom, score):
        self.nom=nom
        self.score=score
        